package com.sxj.corejava.code01_Java基础;

import java.util.Scanner;

/**
 * @author 石小俊
 * 2024年07月08日 16:50
 * 在控制台输入两个int类型的数字, 分别赋值给两个变量
 * 通过一定的方式, 将这两个变量的值进行交换
 * 使用两种方式进行实现
 * 1.交换过程中可以存在第三个变量
 * 2.交换过程中不能存在第三个变量
 */
public class Test08_练习 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入第一个变量:");
        int a = sc.nextInt();
        System.out.print("请输入第二个变量:");
        int b = sc.nextInt();
        System.out.println("交换前的值:a=" + a + ",b=" + b);

        System.out.println("*****************使用方式一进行交换*****************");
        int temp = a;
        a = b;
        b = temp;
        System.out.println("交换后的值:a=" + a + ",b=" + b);

        System.out.println("*****************使用方式二进行交换*****************");
        // 将两数之和赋值给其中一个变量
        a = a + b;
        // 将原来的a的值赋值给b
        // 使用两数之和-原来的b的值就得到了原来的a的值
        b = a - b;
        // 将原来的b的值赋值给a
        // 此时a的值是两数之和,b的值是a
        // 通过两数之和-原来的a的值=需要的b的值
        // 即:a-b
        a = a - b;
        System.out.println("交换后的值:a=" + a + ",b=" + b);
    }
}
